name: Frontend CI/CD

on:
  push:
    branches:
      - master
      - development
      - 'ci-test*' # This will match any branch that starts with "ci-test"
    paths:
      - 'frontend/**'
      - '.github/workflows/frontend-ci.yml'
  pull_request:
    paths:
      - 'frontend/**'
      - '.github/workflows/frontend-ci.yml'

jobs:
  build:
    permissions:
      contents: write
      pull-requests: write
    runs-on: ubuntu-latest
    env:
      BUILD_BRANCH: ${{ format('frontend-build/{0}', github.ref_name) }}

    steps:
    - name: Checkout Repo
      uses: actions/checkout@v4

    - name: Setup Flutter
      uses: subosito/flutter-action@v2
      with:
        flutter-version: '3.13.2'

    - name: Build Flutter to Web
      run: |
        cd frontend
        flutter build web --base-href /app/

    # - name: Commit and Push to ${{ env.BUILD_BRANCH }}
    #   if: github.event_name == 'push'
    #   run: |
    #     git config --local user.email "action@github.com"
    #     git config --local user.name "GitHub Action"
    #     git add frontend/build/web
    #     git checkout -B ${{ env.BUILD_BRANCH }}
    #     git commit -m "Update frontend build to ${GITHUB_SHA:0:7}" -a
    #     git push -f origin ${{ env.BUILD_BRANCH }}

    - name: Create PR ${{ env.BUILD_BRANCH }} -> ${{ github.ref_name }}
      if: github.event_name == 'push'
      uses: peter-evans/create-pull-request@v6
      with:
        add-paths: frontend/build/web
        base: ${{ github.ref_name }}
        branch: ${{ env.BUILD_BRANCH }}
        delete-branch: true
        title: "Update frontend build in `${{ github.ref_name }}`"
        body: "This PR updates the frontend build based on commit ${{ github.sha }}."
        commit-message: "Update frontend build based on commit ${{ github.sha }}"
